﻿$(function () {
    $(".ft-btn-open,.ft-btn-close").click(toggleRegisterForm);
    function toggleRegisterForm() {
        changeRegisterStatus("text-info", "", false);
        $(".homepage-s2").slideToggle(400, function () {
            $('body').animate({
                scrollTop: $(".homepage-s2").is(":visible") ? $(".ft-btn-open").offset().top : 0,
            }, 300);

            $(".homepage-s2 input:visible:first").focus();
        });
    }

    $(".ft-btn-defaut-value").click(function () {
        $("#form_register input").each(function () {
            $(this).val($(this).attr("placeholder"));
        });
    });

    $(".ft-btn-register").click(function () {
        var validFormData = $("#form_register").data('bootstrapValidator');
        validFormData.validate();
        validFormData.setLiveMode('enabled');
        var isValid = validFormData.isValid();
        if (isValid) {
            changeRegisterStatus("text-info", "Đang tạo tài khoản...", true);
            var userInfo = {};
            $("#form_register input").each(function () {
                if ($(this).attr("name") != '' && $(this).val().trim() != '')
                {
                    userInfo[$(this).attr("name")] = $(this).val().trim();
                }
            });

            $.ajax({
                url: BASE_URL + "Home/CreateUser",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataType:"JSON",
                data: JSON.stringify(userInfo),
                success: function (result) {
                    if (ft_IsString(result)) {
                        changeRegisterStatus("text-danger", "Lỗi: " + result, false);
                    }
                    else {
                        changeRegisterStatus("text-info", "Đang tự động đăng nhập...", true);
                        toggleRegisterForm();
                        autoLogin(result.Username, result.Password);
                    }
                },
                error: function (xhr, status, err) {
                    changeRegisterStatus("text-danger", "Tạo tài khoản LỖI, vui lòng thử lại", false);
                },
            });
        }
        else {
            changeRegisterStatus("text-danger", "Vui lòng kiểm tra lại thông tin", false);
        }
    });

    function changeRegisterStatus(textClass, textContent, isShowWaiting) {
        $(".lbl-register-status").attr("class", "lbl-register-status " + textClass);
        $(".lbl-register-status").html(textContent);
        if (isShowWaiting) $(".icon-please-wait-register").show();
        else $(".icon-please-wait-register").hide();
    }

    initializeValidateRegister("#form_register");
    function initializeValidateRegister(selector) {
        $(selector).bootstrapValidator({
            live: "disabled",
            message: "",
            feedbackIcons: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
            fields: {
                requiredField: {
                    selector: selector + ' .validate-required',
                    validators: {
                        notEmpty: { message: "Trường này không được để trống" },
                    }
                },

                emailField: {
                    selector: selector + ' .validate-email',
                    validators: {
                        emailAddress: { message: "Email chưa đúng, vui lòng kiểm tra lại" },
                    }
                },

                phoneField: {
                    selector: selector + ' .validate-phone',
                    validators: {
                        phone: { message: "Số điện thoại chưa đúng, vui lòng kiểm tra lại" },
                        notEmpty: { message: "Trường này không được để trống" },
                    }
                },

                userNameField: {
                    selector: selector + ' .validate-user-name',
                    validators: {
                        regexp: { message: "Tên đăng nhập chỉ được chứa: ký tự, chữ số, dấu chấm '.', và dấu gạch dưới '_' ", regexp: "[a-zA-Z0-9_\.]+" },
                        stringLength: { message: "Tên đăng nhập phải từ 6 đến 30 ký tự", min: 6, max: 30 },
                        notEmpty: { message: "Vui lòng nhập tên" },
                    }
                },

                password2Field: {
                    selector: selector + ' .validate-password2',
                    validators: {
                        identical: { message: "Mật khẩu không trùng", field: "Password" },
                        notEmpty: { message: "Vui lòng gõ lại mật khẩu" },
                    }
                },
            }
        });
    }
});